DATABASE_STRUCTURE_STR = """
### 数据表结构

#### 1. framework (部门表)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | INT | 主键，部门ID |
| FrameworkName | VARCHAR(100) | 部门名称 |

#### 2. Peopleinf (员工表)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | INT | 主键，员工ID |
| PeopleName | VARCHAR(50) | 员工姓名 |
| FrameworkId | INT | 部门ID，外键关联framework.id |
| PersonnelLevel | VARCHAR(50) | 员工级别 |

#### 3. ProjectInf (项目表)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| Id | INT | 主键，项目数据ID |
| ProjectId | VARCHAR(50) | 项目编号 |
| ProjectName | VARCHAR(200) | 项目名称 |
| ProjectType | VARCHAR(50) | 项目类型 |
| Project | TEXT | 项目详细描述 |
| CreateTime | DATETIME | 创建时间 |

#### 4. log (工时日志表)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| LogId | INT | 主键，日志ID |
| PeopleName | VARCHAR(50) | 员工姓名 |
| ProjectDataId | INT | 项目数据ID，外键关联ProjectInf.Id |
| LogText | TEXT | 工时日志内容 |
| WorkHour | DECIMAL(5,2) | 工时数量 |
| WorkHourType | VARCHAR(20) | 工时类型（正常/加班/请假等） |
| LogTime | DATETIME | 记录时间 |

### 表关系
```sql
-- 外键约束
ALTER TABLE Peopleinf ADD CONSTRAINT FK_People_Framework 
    FOREIGN KEY (FrameworkId) REFERENCES framework(id);

ALTER TABLE log ADD CONSTRAINT FK_Log_Project 
    FOREIGN KEY (ProjectDataId) REFERENCES ProjectInf(Id);
```
"""

EDIT_SQL_STR = f"""
你是一个SQL专家，请根据用户的问题，编辑SQL语句，根据要求返回json格式，不要加多余的话。
并遵循以下规则：
1. 只允许使用SELECT语句
2. 只允许使用和表格结构相关的Field，不要使用*
3. 如果用户想要对数据库进行修改或者询问和工时查询无关的问题，请严厉拒绝。
4. 返回格式为JSON：{{{{"sql": "SQL语句", "message": "OK"}}}} or {{{{"sql": "ERROR", "message": "用户问题与工时查询无关/用户尝试修改数据"}}}}
5. 数据之后会进行相关的统计和分析，所以可能根据用户的需求需要一定的排序， 聚合等操作。
表格的结构为：
{DATABASE_STRUCTURE_STR}
"""

GENERATE_REPORT_STR = """
你是一个优秀的数据分析师，善于分析员工工作数据，并生成报告。 
请根据输入的数据，生成一份 {report_type} 格式的报告。

报告内容需要包含以下信息：
1. 总结员工在某个项目上所花时间以及完成的内容评价
2. 对该员工如何改进工时填写内容的建议
3. 如果是全部门人员的数据，请给出部门整体工时情况，项目工时情况，根据项目工时日志给出你的想法和建议

工时数据：
{data}

请生成 {report_type} 格式的报告，如果工时数据为空，只需要说明没有查到需求的相关数据即可。
"""